OpenImageDebugger/OpenImageDebugger
src/CMakeLists.txt
:91
target_link_options(${PROJECT_NAME}
PUBLIC "$<$<PLATFORM_ID:Unix>:-Wl,--exclude-libs,ALL;>")
target_link_options(${PROJECT_NAME}
PUBLIC "$<$<PLATFORM_ID:Unix>:-Wl,--exclude-libs,ALL;>")
set_property(
TARGET pybind11::module
APPEND
PROPERTY
INTERFACE_LINK_LIBRARIES
pybind11::python_link_helper
"$<$<OR:$<PLATFORM_ID:Windows>,$<PLATFORM_ID:Cygwin>>:$<BUILD_INTERFACE:${PYTHON_LIBRARIES}>>"
)
set_property(
TARGET pybind11::python_link_helper
APPEND
PROPERTY INTERFACE_LINK_LIBRARIES "$<$<PLATFORM_ID:Darwin>:-undefined dynamic_lookup>")
target_link_options(BivariateRepresentations
PRIVATE
"$<$<PLATFORM_ID:Darwin>:LINKER:-no_warn_duplicate_libraries>")
set_property(
TARGET pybind11::python_link_helper
APPEND
PROPERTY INTERFACE_LINK_LIBRARIES "$<$<PLATFORM_ID:Darwin>:-undefined dynamic_lookup>")
add_compile_definitions(
DATADIR_PATH="${PROJECTM_DATADIR_PATH}"
$<IF:$<PLATFORM_ID:Darwin>,GL_SILENCE_DEPRECATION,>
$<IF:$<PLATFORM_ID:Windows>,NOMINMAX,>
$<IF:$<PLATFORM_ID:Windows>,WIN32_LEAN_AND_MEAN,>
$<IF:$<PLATFORM_ID:Windows>,STBI_NO_DDS,>
)
target_compile_options(${TARGET} PRIVATE
$<$<PLATFORM_ID:Linux>:-fPIC>
)
target_sources(DearSandbox
PRIVATE
"$<$<PLATFORM_ID:Windows>:main.cpp>"
"$<$<PLATFORM_ID:Darwin>:main_linux.cpp>"
"$<$<PLATFORM_ID:Linux>:main_linux.cpp>"
)
add_compile_definitions(
"$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:${msvc_compile_definitions}>"
"$<$<PLATFORM_ID:Darwin>:${darwin_compile_definitions}>"
"$<$<PLATFORM_ID:iOS>:${ios_compile_definitions}>"
"$<$<PLATFORM_ID:tvOS>:${tvos_compile_definitions}>"
)
target_compile_definitions(
${PROJECT_NAME}
PRIVATE
ARCHITECTURE_X64
GLFW_INCLUDE_NONE
CLIP_ENABLE_IMAGE
$<$<PLATFORM_ID:Linux>:HAVE_PNG_H>
$<$<CONFIG:Debug>:CONFIG_DEBUG>
$<$<CONFIG:Release>:CONFIG_RELEASE>
$<$<CXX_COMPILER_ID:MSVC>:_CRT_SECURE_NO_DEPRECATE>
$<$<PLATFORM_ID:Windows>:PLATFORM_WINDOWS>
$<$<PLATFORM_ID:Linux>:PLATFORM_LINUX>
$<$<BOOL:${PACKAGE_PORTABLE}>:PACKAGE_PORTABLE>
$<$<BOOL:${PACKAGE_DEV}>:PACKAGE_DEV>
$<$<AND:$<PLATFORM_ID:Linux>,$<BOOL:${PACKAGE_SNAP}>>:PACKAGE_SNAP>
$<$<AND:$<PLATFORM_ID:Linux>,$<BOOL:${PACKAGE_DEB}>>:PACKAGE_DEB>
$<$<AND:$<PLATFORM_ID:Linux>,$<BOOL:${PACKAGE_NIX}>>:PACKAGE_NIX>
# These shouldn't actually be necessary as there are no direct Windows API calls
# in TacentView (they are abstracted away by the Tacent libraries). But just in case
# anything in the viewer were to call an OS-level function, these enable the UTF-16
# versions if the TACENT_UTF16_API_CALLS option is set.
$<$<AND:$<PLATFORM_ID:Windows>,$<BOOL:${TACENT_UTF16_API_CALLS}>>:UNICODE> # C++ UFF-16
$<$<AND:$<PLATFORM_ID:Windows>,$<BOOL:${TACENT_UTF16_API_CALLS}>>:_UNICODE> # C UTF-16
$<$<AND:$<PLATFORM_ID:Windows>,$<BOOL:${TACENT_UTF16_API_CALLS}>>:TACENT_UTF16_API_CALLS>
)
target_precompile_headers( ${TARGET} PRIVATE
$<$<PLATFORM_ID:Windows>:${CMAKE_BINARY_DIR}/src/private/configwin.h>
$<$<PLATFORM_ID:Darwin>:${CMAKE_BINARY_DIR}/src/private/configmac.h>
$<$<NOT:$<PLATFORM_ID:Windows,Darwin>>:${CMAKE_BINARY_DIR}/src/private/configunix.h>
AudacityHeaders.h
)
target_compile_definitions(${juce_target} INTERFACE
JUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1
$<IF:${debug_config},DEBUG=1 _DEBUG=1,NDEBUG=1 _NDEBUG=1>
$<$<PLATFORM_ID:Android>:JUCE_ANDROID=1>)
add_executable(
JASPEngine
${SOURCE_FILES}
${HEADER_FILES}
$<$<PLATFORM_ID:Windows>:${CMAKE_SOURCE_DIR}/Engine/JASPEngine.exe.manifest>
)
target_link_options(cf_file_scanner PRIVATE $<$<PLATFORM_ID:Windows>:-static-libgcc -static-libstdc++ -static>)
target_link_options(${name} PRIVATE
$<$<BOOL:${SNMALLOC_LINKER_SUPPORT_NO_ALLOW_SHLIB_UNDEF}>:-Wl,--no-undefined>
$<$<PLATFORM_ID:Windows>:$<${ci_or_debug}:/DEBUG>>)
add_compile_definitions($<$<PLATFORM_ID:Windows>:_WIN32_WINNT=0x600>)
target_sources(freeorion
PUBLIC
${CMAKE_CURRENT_LIST_DIR}/GGHumanClientApp.h
PRIVATE
${CMAKE_CURRENT_LIST_DIR}/HumanClientFSM.h
${CMAKE_CURRENT_LIST_DIR}/ClientFSMEvents.h
${CMAKE_CURRENT_LIST_DIR}/chmain.cpp
${CMAKE_CURRENT_LIST_DIR}/GGHumanClientApp.cpp
${CMAKE_CURRENT_LIST_DIR}/HumanClientFSM.cpp
${CMAKE_CURRENT_LIST_DIR}/ClientFSMEvents.cpp
# Add icon resource file to freeorion.exe
$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_LIST_DIR}/FreeOrion.rc>
$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_LIST_DIR}/FreeOrion.ico>
$<$<PLATFORM_ID:Darwin>:${CMAKE_CURRENT_LIST_DIR}/chmain.mm>
$<$<PLATFORM_ID:Darwin>:${CMAKE_CURRENT_LIST_DIR}/GUIController.mm>
# Add icon and menu resource files to FreeOrion.app
$<$<PLATFORM_ID:Darwin>:${CMAKE_CURRENT_LIST_DIR}/main.xib>
$<$<PLATFORM_ID:Darwin>:${CMAKE_CURRENT_LIST_DIR}/FreeOrion.icns>
)
target_link_options(
${LIBRARY}
PUBLIC
"$<$<PLATFORM_ID:Darwin>:-Wl,-U,_git_branch>"
"$<$<PLATFORM_ID:Darwin>:-Wl,-U,_git_description>"
"$<$<PLATFORM_ID:Darwin>:-Wl,-U,_link_date>"
"$<$<PLATFORM_ID:Darwin>:-Wl,-U,_executable_name>"
)
target_link_options(digidoc-tool PRIVATE
$<$<PLATFORM_ID:Windows>: /MANIFEST:NO /MANIFEST:EMBED /MANIFESTINPUT:${CMAKE_CURRENT_SOURCE_DIR}/digidoc-tool.manifest>
)
target_compile_definitions(rpmalloc PRIVATE "$<$<PLATFORM_ID:Linux>:_GNU_SOURCE>")
set_property(
TARGET pybind11::python_link_helper
APPEND
PROPERTY INTERFACE_LINK_LIBRARIES "$<$<PLATFORM_ID:Darwin>:-undefined dynamic_lookup>")
ExternalProject_Add(googletest
GIT_REPOSITORY
https://github.com/google/googletest.git
GIT_TAG
release-1.11.0
PREFIX
${PROJECT_BINARY_DIR}/googletest
INSTALL_DIR
${PROJECT_BINARY_DIR}/temp_install/googletest
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
$<$<PLATFORM_ID:Windows>:-Dgtest_force_shared_crt:BOOL=ON>
BUILD_COMMAND
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release --target install
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Debug --target install
INSTALL_COMMAND
""
)
add_library(nativefiledialog
src/nfd_common.c
$<$<PLATFORM_ID:Windows>:src/nfd_win.cpp>
$<$<PLATFORM_ID:Darwin>:src/nfd_cocoa.m>
$<$<NOT:$<OR:$<PLATFORM_ID:Windows>,$<PLATFORM_ID:Darwin>>>:src/nfd_zenity.c>
)
target_compile_options(catch2_static PRIVATE
$<$<CXX_COMPILER_ID:Clang,AppleClang,GNU>:
$<$<CONFIG:Debug>:-g;-O0>
$<$<CONFIG:Release>:-O3>
>
$<$<CXX_COMPILER_ID:MSVC>:
/nologo
/W3
/O2
/Ob1
/GF
/Gy
$<$<CONFIG:Debug>:/MTd>
$<$<CONFIG:Release>:/MT>
# NOTE: https://github.com/catchorg/Catch2/issues/2174
/Zc:hiddenFriend-
>
# NOTE: emcc (Emscripten Compiler Frontend)
$<$<PLATFORM_ID:Emscripten>:
-pthread
>
)
target_link_options(evmone PRIVATE $<$<PLATFORM_ID:Linux>:LINKER:--no-undefined>)
set_property(
TARGET pybind11::module
APPEND
PROPERTY
INTERFACE_LINK_LIBRARIES
pybind11::python_link_helper
"$<$<OR:$<PLATFORM_ID:Windows>,$<PLATFORM_ID:Cygwin>>:$<BUILD_INTERFACE:${PYTHON_LIBRARIES}>>"
)
target_sources(afcpu
PRIVATE
$<$<PLATFORM_ID:Windows>:${af_cpu_ver_res_file}>
Array.cpp
Array.hpp
anisotropic_diffusion.cpp
anisotropic_diffusion.hpp
approx.cpp
approx.hpp
arith.hpp
assign.cpp
assign.hpp
backend.hpp
binary.hpp
bilateral.cpp
bilateral.hpp
blas.cpp
blas.hpp
canny.cpp
canny.hpp
cast.hpp
cholesky.cpp
cholesky.hpp
complex.hpp
convolve.cpp
convolve.hpp
copy.cpp
copy.hpp
device_manager.cpp
device_manager.hpp
diagonal.cpp
diagonal.hpp
diff.cpp
diff.hpp
err_cpu.hpp
Event.cpp
Event.hpp
exampleFunction.cpp
exampleFunction.hpp
fast.cpp
fast.hpp
fft.cpp
fft.hpp
fftconvolve.cpp
fftconvolve.hpp
flood_fill.hpp
flood_fill.cpp
gradient.cpp
gradient.hpp
harris.cpp
harris.hpp
hist_graphics.cpp
hist_graphics.hpp
histogram.cpp
histogram.hpp
homography.cpp
homography.hpp
hsv_rgb.cpp
hsv_rgb.hpp
identity.cpp
identity.hpp
iir.cpp
iir.hpp
image.cpp
image.hpp
index.cpp
index.hpp
inverse.cpp
inverse.hpp
iota.cpp
iota.hpp
ireduce.cpp
ireduce.hpp
join.cpp
join.hpp
lapack_helper.hpp
logic.hpp
lookup.cpp
lookup.hpp
lu.cpp
lu.hpp
match_template.cpp
match_template.hpp
math.cpp
math.hpp
mean.cpp
mean.hpp
meanshift.cpp
meanshift.hpp
medfilt.cpp
medfilt.hpp
memory.cpp
memory.hpp
moments.cpp
moments.hpp
morph.cpp
morph.hpp
nearest_neighbour.cpp
nearest_neighbour.hpp
orb.cpp
orb.hpp
ParamIterator.hpp
platform.cpp
platform.hpp
plot.cpp
plot.hpp
print.hpp
qr.cpp
qr.hpp
queue.hpp
random_engine.cpp
random_engine.hpp
range.cpp
range.hpp
reduce.cpp
reduce.hpp
regions.cpp
regions.hpp
reorder.cpp
reorder.hpp
resize.cpp
resize.hpp
reshape.cpp
rotate.cpp
rotate.hpp
scan.cpp
scan.hpp
scan_by_key.cpp
scan_by_key.hpp
select.cpp
select.hpp
set.cpp
set.hpp
shift.cpp
shift.hpp
sift.cpp
sift.hpp
sobel.cpp
sobel.hpp
solve.cpp
solve.hpp
sort.cpp
sort.hpp
sort_by_key.cpp
sort_by_key.hpp
sort_index.cpp
sort_index.hpp
sparse.cpp
sparse.hpp
sparse_arith.cpp
sparse_arith.hpp
sparse_blas.cpp
sparse_blas.hpp
surface.cpp
surface.hpp
susan.cpp
susan.hpp
svd.cpp
svd.hpp
tile.cpp
tile.hpp
topk.cpp
topk.hpp
traits.hpp
transform.cpp
transform.hpp
transpose.cpp
transpose.hpp
triangle.cpp
triangle.hpp
types.hpp
unary.hpp
unwrap.cpp
unwrap.hpp
utility.hpp
vector_field.cpp
vector_field.hpp
where.cpp
where.hpp
wrap.cpp
wrap.hpp
)
ExternalProject_Add(googletest
GIT_REPOSITORY
https://github.com/google/googletest.git
GIT_TAG
release-1.11.0
PREFIX
${PROJECT_BINARY_DIR}/googletest
INSTALL_DIR
${PROJECT_BINARY_DIR}/temp_install/googletest
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
$<$<PLATFORM_ID:Windows>:-Dgtest_force_shared_crt:BOOL=ON>
BUILD_COMMAND
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release --target install
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Debug --target install
INSTALL_COMMAND
""
)
target_link_options(${TARGET_NAME} PRIVATE
$<$<PLATFORM_ID:Linux>:-static-libstdc++ -Wl,-Map,${TARGET_NAME}_map.txt>)
add_link_options($<$<PLATFORM_ID:Windows>:LINKER:/WX>)
target_link_options(${libname}
PRIVATE
# On Linux, disable re-export of any static linked libraries that
# came through.
$<$<PLATFORM_ID:Linux>:LINKER:--exclude-libs,ALL>
)
target_compile_options(FoundationNetworking PRIVATE
"SHELL:$<$<COMPILE_LANGUAGE:Swift>:-Xfrontend -public-autolink-library -Xfrontend $<$<PLATFORM_ID:Windows>:${CMAKE_STATIC_LIBRARY_PREFIX_Swift}>swiftSynchronization>")
ExternalProject_Add(
bgfx
GIT_REPOSITORY https://github.com/pr0g/bgfx.cmake.git
GIT_TAG bde3f94ce75ffd184e9a3bdfe947a3bec69233eb
PREFIX ${PREFIX_DIR}
BINARY_DIR ${PREFIX_DIR}/src/bgfx-build/${build_type_dir}
CMAKE_COMMAND ${THIRD_PARTY_CMAKE_COMMAND}
CMAKE_ARGS ${build_type_arg}
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
"$<$<CONFIG:Debug>:-DCMAKE_DEBUG_POSTFIX=d>"
"$<$<PLATFORM_ID:Emscripten>:-DBGFX_CONFIG_MULTITHREADED=OFF>"
-DBGFX_BUILD_EXAMPLES=OFF
BUILD_COMMAND cmake --build <BINARY_DIR> ${build_config_arg}
INSTALL_COMMAND cmake --build <BINARY_DIR> --target install
${build_config_arg})
list( APPEND DEFINES
PRIVATE
BUILDING_SNEEDACITY
WXUSINGDLL
CMAKE
$<$<BOOL:${HAVE_LRINT}>:
HAVE_LRINT
>
$<$<BOOL:${HAVE_LRINTF}>:
HAVE_LRINTF
>
$<$<BOOL:${HAVE_MLOCK}>:
HAVE_MLOCK
>
$<$<PLATFORM_ID:Windows>:
_CRT_SECURE_NO_WARNINGS
__STDC_CONSTANT_MACROS
STRICT
>
$<$<BOOL:${USE_UPDATE_CHECK}>:
HAVE_UPDATES_CHECK
>
)
target_link_libraries(
${plugin}
"$<$<PLATFORM_ID:Darwin>:-undefined dynamic_lookup>"
)
ExternalProject_Add(googletest
GIT_REPOSITORY
https://github.com/google/googletest.git
GIT_TAG
release-1.11.0
PREFIX
${PROJECT_BINARY_DIR}/googletest
INSTALL_DIR
${PROJECT_BINARY_DIR}/temp_install/googletest
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
$<$<PLATFORM_ID:Windows>:-Dgtest_force_shared_crt:BOOL=ON>
BUILD_COMMAND
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Release --target install
COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config Debug --target install
INSTALL_COMMAND
""
)
set_property(
TARGET pybind11::python_link_helper
APPEND
PROPERTY INTERFACE_LINK_OPTIONS "$<$<PLATFORM_ID:Darwin>:LINKER:-undefined,dynamic_lookup>")
target_link_options(${name} PRIVATE
$<$<BOOL:${SNMALLOC_LINKER_SUPPORT_NO_ALLOW_SHLIB_UNDEF}>:-Wl,--no-undefined>
$<$<PLATFORM_ID:Windows>:$<${ci_or_debug}:/DEBUG>>)
target_link_libraries (testhdf5_fortran PRIVATE ${HDF5_F90_TEST_LIB_TARGET} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} "$<$<PLATFORM_ID:Windows>:ws2_32.lib>")